Skip to content

Conversation

@terencechain
Copy link
Collaborator

@terencechain terencechain commented Apr 12, 2025

This PR adds support for blobs_bundle_v2 as defined in execution-apis#630, enabling compatibility with the latest Fulu-era blob response format.

Summary of Changes

  • Introduced a BlobsBundler interface to abstract over both v1 and v2 blob bundle implementations
  • Extended the constructGenericBeaconBlock logic to support type assertions for both BlobsBundle and BlobsBundleV2 based on the block version
  • Modified execution payload parsing and response handling to dynamically select the appropriate bundle version
  • Adjusted PeerDAS integration logic to use GetBlobs() and GetProofs() from the BlobsBundler interface
  • Updated protobuf definitions and generated code to include BlobsBundleV2 and ExecutionBundleFulu

@terencechain terencechain marked this pull request as draft April 12, 2025 04:23
@terencechain terencechain marked this pull request as ready for review April 14, 2025 23:46
func (vs *Server) constructGenericBeaconBlock(sBlk interfaces.SignedBeaconBlock, blobsBundle *enginev1.BlobsBundle, winningBid primitives.Wei) (*ethpb.GenericBeaconBlock, error) {
func (vs *Server) constructGenericBeaconBlock(
sBlk interfaces.SignedBeaconBlock,
blobsBundle enginev1.BlobsBundler,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

blobsBundle ==> blobsBundler?
(To ensure consistency between variable name and type.)

type GetPayloadResponse struct {
ExecutionData interfaces.ExecutionData
BlobsBundle *pb.BlobsBundle
BlobsBundle pb.BlobsBundler
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BlobsBundle ==> BlobsBundler?
(To ensure struct field consistency with type.)

repeated bytes execution_requests = 5;
}

message ExecutionBundleFulu {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it possible to create a new fulu.proto file to avoid having Fulu structs defined in the electra.proto file?

@nalepae nalepae merged commit b9deabb into peerDAS Apr 16, 2025
14 checks passed
@nalepae nalepae deleted the bundle-v2 branch April 16, 2025 08:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants